package day19;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*本类代表socket网络通信中的服务端
1.创建服务端套接字包含端口
2等待客户端连接
3接受客户端发来的数据
4读取并输出客户端发来的苏剧
5给客户端响应
6关闭资源
* */
public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket ss = new ServerSocket(8888);   //1创建套接字对象，指明端口
        Socket socket = ss.accept();                     //2接受客户端发来的数据，建立接受通道
        InputStream in = socket.getInputStream();        //3，获取输入流，接受并读取客户端发来的数据
        for(int i = 0 ; i < 5; i++) {                    //4通过玄幻挨个读取内容，并显示在控制台
            char c = (char) in.read();                   //通过哦客户端端流入的一定是数字，要强制转换为字符换
            System.out.print(c);        //注意这里不换号输出
        }
        OutputStream out = socket.getOutputStream();          //现在还给客户端响应
        out.write("world".getBytes());
        out.flush();                                         //为确保所有数据都传输过去，需要刷新缓冲区
        out.close();                                        //关闭这些，释放资源，先从后面的开始关闭
        in.close();
        ss.close();


    }
}
